/**
 * 格式化日期时间
 * @param {string|Date} date 日期时间
 * @returns {string} 格式化后的日期时间字符串
 */
export function formatDateTime(date) {
    if (!date) return '';

    const d = new Date(date);

    const year = d.getFullYear();
    const month = String(d.getMonth() + 1).padStart(2, '0');
    const day = String(d.getDate()).padStart(2, '0');
    const hours = String(d.getHours()).padStart(2, '0');
    const minutes = String(d.getMinutes()).padStart(2, '0');
    const seconds = String(d.getSeconds()).padStart(2, '0');

    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

/**
 * 格式化持续时间（分钟转为小时和分钟）
 * @param {number} minutes 分钟数
 * @returns {string} 格式化后的持续时间
 */
export function formatDuration(minutes) {
    if (!minutes && minutes !== 0) return '';

    const hours = Math.floor(minutes / 60);
    const mins = minutes % 60;

    if (hours > 0) {
        return `${hours}小时${mins}分钟`;
    }
    return `${mins}分钟`;
}

/**
 * 格式化分数
 * @param {number} score 分数
 * @returns {string} 格式化后的分数
 */
export function formatScore(score) {
    if (!score && score !== 0) return '';
    return score.toFixed(1);
}

/**
 * 格式化考试状态
 * @param {number} status 状态码
 * @returns {string} 状态描述
 */
export function formatExamStatus(status) {
    const statusMap = {
        0: '进行中',
        1: '已完成'
    };
    return statusMap[status] || '未知';
}

/**
 * 格式化百分比
 * @param {number} value 值
 * @param {number} total 总数
 * @returns {string} 百分比
 */
export function formatPercentage(value, total) {
    if (!total) return '0%';
    return `${((value / total) * 100).toFixed(1)}%`;
} 